package cn.xeblog.plugin.game.box.enums;

import lombok.AllArgsConstructor;
import lombok.Getter;

import java.util.Arrays;

/**
 * 地图枚举
 */
@Getter
@AllArgsConstructor
public enum MapAttributeEnum {
    /**
     * 墙
     */
    WALL(1, "墙"),
    /**
     * 箱子
     */
    BOX(2, "箱子"),
    /**
     * 箱子终点
     */
    BOX_TARGET(3, "箱子终点"),
    /**
     * 终点
     */
    TARGET(4, "终点"),
    /**
     * 人物向下
     */
    MAN_DOWN(5, "人物向下"),
    /**
     * 人物向左
     */
    MAN_LEFT(6, "人物向左"),
    /**
     * 人物向右
     */
    MAN_RIGHT(7, "人物向右"),
    /**
     * 人物向上
     */
    MAN_UP(8, "人物向上"),
    /**
     * 过道
     */
    BLANK(9, "过道"),
    /**
     * 人物向下终点
     */
    MAN_DOWN_TARGET(10, "人物向下终点"),
    /**
     * 人物向左终点
     */
    MAN_LEFT_TARGET(11, "人物向左终点"),
    /**
     * 人物向右终点
     */
    MAN_RIGHT_TARGET(12, "人物向右终点"),
    /**
     * 人物向上终点
     */
    MAN_UP_TARGET(13, "人物向上终点");
    /**
     * 值
     */
    private int value;
    /**
     * 备注
     */
    private String memo;


    /**
     * 通过备注获取面板尺寸枚举
     *
     * @param value 值
     * @return 面板尺寸枚举
     */
    public static MapAttributeEnum match(int value) {
        return Arrays.stream(values()).filter(attr -> attr.value == value).findFirst().orElse(null);
    }
}
